The invention relates generally to graphics processing devices and methods and more particularly to devices and methods for accessing stored vertex data that may be stored in a plurality of different formats.
Typically, graphics devices and methods use vertex data to draw lines, triangles, and to provide texture mapping for output to a visual display device. As a result, some drawing engines or video games provide vertex data to a graphics drawing engine on a graphics processor, for example, and the graphics processor then performs the necessary calculations to draw lines and triangles using the vertex data. Vertex data is typically used to figure out how and where to draw lines and triangles. Three-dimensional shading and lighting is typically done by drawing many triangles with the appropriate shading to give a visual representation of a suitable texture to a figure or suitable lighting for a scene. Vertex data typically includes a plurality o vertex parameters which may include, for example, X coordinate position data, Y coordinate position data, Z coordinate position data, homogeneous coordinate positions for perspective correction, texture coordinates, diffuse color parameters and specular color parameters or any other suitable parameters.
A problem arises when a graphics processor receives the vertex data, such as the vertex parameters, in different formats from differing vertex data providers. For example, one software application may put the vertex data in one format whereas another software application may put the vertex data to the graphics processor in a different format. Conventional graphics processors typically have software that receives the vertex data in one format and stores the vertex data in its original format in memory. If the format is not understood by the graphics processor, the software module typically reformats the vertex data in a suitable format, namely a single format understood by the graphics processor and restores the reformatted vertex data in memory. A problem arises in that such systems can waste enormous amounts of time to fetch and restore the data from the first format and store the data again in memory in a second format. This typically is done every time a software application provides data, namely vertex data for the graphics processor. In addition, such systems may typically use twice the memory for the same period of time because the rearranging of the vertex data requires storage of the data in the original format as well as storage of the data in the single format understood by the graphics processor.
Consequently, a need exists for an apparatus and method for improving the efficiency of the graphics processing device by substantially reducing the memory requirements when differing formats of vertex data are received and improving system performance by substantially eliminating the need to read and restore vertex data in undesirable formats.